欢迎转载,转载请标明出处.
英文原文文档地址: Litho-doc
快速开始
编写Component
Component Specs
一个Component Spec可以生成一个你在UI中使用的Component.有两种类型的Component Spec:
- Layout spec: 可以结合其他component至一个特定的布局中.类似于Android中的ViewGroup.
- Mount spec: 一个可以渲染view或者drawable的的组件.
现在,我们来看一下布局spec的整体结构:
|
|
有几件事需要注意:
- Component Spec只是有着特殊注释的普通java类.
- Component Spec是完全无状态的,并且不包含任何的成员变量.
- 带有@Prop注释的参数将会自动的添加到Component构造器中.
- 为了能从Component Spec自动生成Component,你需要添加Litho注释处理器至你的BUCK或者Gradle文件中.请参阅入门指南,了解如何做到这一点.你可以通过向类注释添加isPublic=false来使生成的类变为private的.
Spec,生命周期和Component类
一个Component Spec子类将被处理用于生成一个ComponentLifecycle的子类,这个子类的名字将会是Spec的名字去掉soec后缀.例如,MyComponentSpec将会生成MyComponent类.
这个生成的ComponentLifeCycle类就是今后你会在你的产品中使用的类.而Spec类将在运行的时候在新生成的代码里被用作一个代表类.
生成的新类暴露出来的唯一的API是一个create(…)方法,它为您在Spec类中声明的@Props返回相应的Component.Builder。
在运行的时候,同一种类型的component的所有实例都共享相同的componentLifecycle引用.这意味着一个spec实例对应的是一种component类型,而不是一个component实例.